void main() {
  // 1. if单分支语句
  // 准备高考成绩，如果分数大于等于700分，则输出 '恭喜考入黑马程序员'
  int score1 = 699;
  if (score1 >= 700) {
    print('恭喜考入黑马程序员');
  }

  // 2. if双分支语句
  // 准备高考成绩，如果分数大于等于700分，则输出 '恭喜考入黑马程序员'，反之，则输出 '继续努力'
  int score2 = 699;
  if (score2 >= 700) {
    print('恭喜考入黑马程序员');
  } else {
    print('继续努力');
  }

  score2 >= 700 ? print('11恭喜考入黑马程序员') : print('22继续努力');
  print(score2 >= 700 ? '11恭喜考入黑马程序员' : '22继续努力');

  // 3. if多分支语句
  // 根据学生分数划分学生成绩等级：
  // 优秀：分数大于等于90分
  // 良好：分数小于90分，且大于等于80分
  // 中等：分数小于80分，且大于等于60分
  // 不及格：分数小于60分
  int score3 = 90;
  if (score3 >= 90) {
    print('优秀');
  } else if (score3 >= 80) {
    print('良好');
  } else if (score3 >= 60) {
    print('中等');
  } else {
    print('不及格');
  }

  // 条件是判断相等，则switch case 语句性能比 if 分支语句要好
  // 根据订单状态，打印出订单状态描述信息
  // 订单状态：1为待付款、2为待发货、3为待收货、4为待评价
  int orderState = 3;
  switch (orderState) {
    case 1:
      print('待付款');
      break;
    case 2:
      print('待发货');
      break;
    case 3:
      print('待收货');
      break;
    case 4:
      print('待评价');
      break;
    default:
      print('其他');
  }

  // 1. while循环
  // 重复打印10次 '月薪过万'
  int n = 0;
  while (n < 10) {
    print('$n -- 月薪过万');
    n++;
  }

  // 2. for循环
  // 重复打印5次 '李白姓白'
  for (int i = 0; i < 5; i++) {
    print('$i -- 李白姓白');
  }

  // 3. 使用循环遍历列表
  // 3.1 遍历列表：for循环
  List<String> categories = ['居家', '美食', '服饰'];
  for (int i = 0; i < categories.length; i++) {
    print(categories[i]);
  }

  // 3.2 遍历列表：for ... in
  for (String item in categories) {
    // item就是遍历出来的元素
    print('forin遍历：' + item);
  }

  // 4. 终止循环
  // 4.1 break：中断整个循环
  for (int i = 0; i < 5; i++) {
    if (i == 2) {
      // 吃到第三个苹果发现了虫子，剩下的苹果没胃口都不吃了
      break;
    }
    print('我把第 ${i + 1} 个苹果吃了');
  }

  // 4.2 continue：跳过本次循环直接进入下一次循环
  for (int i = 0; i < 5; i++) {
    if (i == 2) {
      // 吃到第三个桃子发现了虫子，第三个桃子不吃了，剩下的桃子接着吃
      continue;
    }
    print('我把第 ${i + 1} 个桃子吃了');
  }
}
